package impl

import (
	"context"
	"fmt"
	"pd/modules/rdp_white_ip"
)

func (i *RwiImpl) saveRdp_white_ip(ctx context.Context, ins *rdp_white_ip.Rdp_white_ip) error {
	var err error
	// 开启事务
	tx, err := i.db.BeginTx(ctx, nil)
	if err != nil {
		return fmt.Errorf("start tx error,%s", err)
	}
	
	defer func() {
		if err != nil {
			if err := tx.Rollback(); err != nil {
				i.l.Errorf("rollback error,%s", err)
			}
		} else {
			if err := tx.Commit(); err != nil {
				i.l.Errorf("commit error,%s", err)
			}

		}
	}()
	
	r_stmt, err := tx.PrepareContext(ctx, InsertRdp_white_ipSQL)
	if err != nil {
		return err
	}
	defer r_stmt.Close()
	_, err = r_stmt.ExecContext(ctx,
		ins.Ip, ins.Username, ins.Create_time, ins.Update_time, ins.Admin, ins.Remark, ins.Status,
	)
	if err != nil {
		return err
	}
	return nil
}
